
#ifndef Disk_h
#define Disk_h

#include "Primitive.h"
#include "Point.h"
class Ray;

class Disk : public Primitive {
 public:
  Disk(Material* material, const Point& center, const Vector& normal, double radius);
  virtual ~Disk();

  virtual void getBounds(BoundingBox& bBox) const;
  virtual void intersect(HitRecord& hit, const RenderContext& context, const Ray& ray) const;
  virtual void normal(Vector& normal, const RenderContext& context,
                      const Point& hitpos, const Ray& ray, const HitRecord& hit) const;
 protected:
  Point center;
  Vector my_normal;
  double radius;
  double d;
};

#endif
